// 路由匹配规则文件
import { RouteRecordRaw } from 'vue-router'
// 一次性导入所有模块 vite3
const ModuleArray = import.meta.glob('./modules/*.ts', { eager: true })
// const ModuleArray = import.meta.globEager('./modules/*.ts') vite2

// * 处理路由表
export const routerArray: RouteRecordRaw[] = []

Object.keys(ModuleArray).forEach(item => {
	Object.keys(ModuleArray[item]).forEach((key: any) => {
		routerArray.push(...ModuleArray[item][key])
	})
})

// 通过index调整菜单顺序
routerArray.sort((a, b) => a.meta.index - b.meta.index)

// 路由映射规则
const routes: RouteRecordRaw[] = [
	// 登录路由
	{
		path: '/login',
		name: 'login',
		component: () => import('@/views/login/index.vue')
	},
	// 404路由
	{
		path: '/404',
		name: '404',
		component: () => import('@/views/error/404.vue')
	},
	// 合并路由表
	...routerArray,
	// 匹配未知路由（404）
	{
		path: '/:pathMatch(.*)*',
		redirect: '404'
	}
]

export default routes
